package com.linkai.JUC._03_lock8;

/**
 * @Description: 可重入锁 synchronize 版
 * @Author: 林凯
 * @Date: 2021/10/26 22:39
 */
public class ReentrantLockTest01 {
    public static void main(String[] args) {
        PhoneReentrantLockSynchronize phone = new PhoneReentrantLockSynchronize();

        new Thread(()->{
            phone.sms();
        }, "A").start();

        new Thread(()->{
            phone.sms();
        }, "B").start();
    }
}

class PhoneReentrantLockSynchronize {
    public synchronized void sms() {
        System.out.println(Thread.currentThread().getName() + "sms");
        // 同时也会获得里面的锁，此时外面的锁并不会解锁，等到里面的代码执行完毕，里面的解锁之后，外面的锁才可以解锁
        call();     // 这里也有锁
    }

    public synchronized void  call() {
        System.out.println(Thread.currentThread().getName() + "call");
    }
}
